破解分布式数据库全局死锁难题 GBase 8c引领数据库领域变革
面对与日俱增的海量数据,分布式数据库凭借其高可用、高扩展、高性价比等优势,能为企业业务提供良好支撑,得到越来越多用户的认可。分布式数据库的时代已悄然到来!
南大通用GBase 8c就是一款多模多态的分布式数据库产品,其支持行存、列存、内存等多种存储模式和单机、主备式、分布式等多种部署形态,具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。
随着分布式数据库的不断发展,目前正面临一些挑战,现有技术需要不断的突破和创新。例如,高并发分布式数据库运行过程中,经常发生多个节点上的多个数据库会话间互相访问对方占有的资源,从而产生循环等待的情况,即发生分布式全局死锁。
为了让事务得以继续运行,就需要分布式数据库系统提供死锁快速检测和解除技术。
传统处理方式是通过在CN(协调器)和DN(数据节点)上部署global deadlock process并与GTM(全局事务管理器)建立通讯通道,周期性地对事务等待关系进行检测,并将检测结果发送给GTM用来构建全局等待图。当检测到死锁环时,立即将执行事务号最大的事务执行退出流程,从而解决全局死锁问题。
但这种方案存在单一节点,GTM需收集所有节点的等待关系,当集群节点、运行事务较多时,负荷过高且周期性触发,出现死锁——检测到死锁时间较长,影响数据库性能。
针对这些情况,GBase 8c开发团队提出了一种基于探测消息传递的死锁检测和解锁方法,以解决分布式系统中出现死锁的情况。
具体说来,在GBase 8c数据库中,若某一事务的CN处理进程收到自己发出的探测消息,即说明存在全局死锁。此时事务关联的CN处理进程执行事务回滚,释放出自己占有的锁资源,以便其它事务拿到资源锁后得以继续运行。事务回滚后,死锁等待环就断开了,不存在循环等待的卡死现象,从而解决全局死锁的问题。这种去中心化的设计,避免了任何单点故障导致死锁检测失效或滞后的问题。
目前,南大通用已将该项技术申请专利,并获得国家知识产权局受理。
当前分布式数据库既面临历史性的发展机遇,也在迎接严峻挑战。为顺应数字化转型提速的趋势,南大通用GBase 8c将进一步加速产品科技创新,持续提升产品性能,推动国产大数据领域生态圈的繁荣发展。
本期撰稿:缇安
本期编辑:yuyuan
THE END
往期文章
新闻资讯
生态合作
培训活动
技术干货